
package CCT220_Aula06_Example02_13106;

/**
 * Criando uma classe
 * .Inserindo atributos (variáveis de
 * instância), que servem para caracterizar os
 * objetos criados a partir desta classe
 * .Acrescentando comportamento
 * ..Através da criação de métodos é possível
 * determinar o que se pode fazer com cada objeto
 * da classe criada
 * .criar um método chamado main()
 * ..Ponto de início do processamento de uma
 * aplicação Java
 * 
 * A maioria das classes Java apresentam os
 * chamados métodos construtores
 * .Possuem o mesmo nome da classe
 * .São usados para construir instâncias das
 * classes
 * ..Em geral, já fazem o ajuste das variáveis
 * de instância
 * 
 * @author marcel
 * 
 */
public class Motocicleta {

	/**
	 * atributos
	 */
	private final String marca;
	private final String cor;
	private boolean      motorLigado;


	/**
	 * Construtor
	 * 
	 * @param marca
	 * @param cor
	 * @param motorLigado
	 */
	public Motocicleta(String marca, String cor, boolean motorLigado) {

		this.marca = marca;
		this.cor = cor;
		this.motorLigado = motorLigado;
	}


	/**
	 * Metodo que liga o motor da motocicleta se
	 * ele estiver desligado
	 */
	private void ligaMotor() {

		if (motorLigado == true) {
			System.out.println("O motor já está ligado!");
		} else {
			motorLigado = true;
			System.out.println("Motor acaba de ser ligado!");
		}
	}


	/**
	 * Metodo motra atributos que imprime na tela
	 * os atributos deste objeto
	 */
	private void mostraAtributos() {

		System.out.println("Esta motocicleta é uma "
		        + marca
		        + " "
		        + cor
		        + (motorLigado ? "Seu motor está ligado!"
		                : "Seu motor está desligado!"));
	}


	/**
	 * Matodo main que inicializa o programa
	 * 
	 * @param args
	 */
	public static void main(String args[]) {

		Motocicleta m = new Motocicleta("Honda", "Azul", false);

		m.mostraAtributos();

		System.out.println("--------------");
		m.ligaMotor();

		System.out.println("--------------");
		m.mostraAtributos();

		System.out.println("--------------");
		m.ligaMotor();

	}
}
